package com.nbgroup.mapper;

import com.github.pagehelper.Page;
import com.nbgroup.pojo.Role;
import com.nbgroup.pojo.dto.PageRoleDTO;
import com.nbgroup.pojo.dto.RoleDTO;
import com.nbgroup.pojo.dto.RoleDTO3;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface RoleMapper {
    /**
     * 角色分页搜索
     * @param pageRoleDTO
     * @return
     */
    Page<Role> rolePageQuery(PageRoleDTO pageRoleDTO);

    /**
     * 查询所有角色
     * @return
     */
    @Select("select * from role")
    List<Role> queryAllRole();

    /**
     * 添加角色
     * @param role
     */
    void addRole(Role role);

    /**
     * 查询回显
     * @param roleId
     * @return
     */
    @Select("select * from role where role_id=#{roleId}")
    Role queryById(Long roleId);

    /**
     * 修改角色
     * @param role
     */
    void updateRole(Role role);

    /**
     * 删除角色
     * @param roleId
     */
    @Delete("delete from role where role_id=#{roleId}")
    void deleteRole(Long roleId);

    /**
     * 修改角色状态
     * @param roleDTO
     */
    @Update("update role set status=#{status},update_time=#{updateTime} where role_id=#{roleId}")
    void updateRoleStatus(RoleDTO roleDTO);

    /**
     * 修改角色数据权限
     * @param roleDTO3
     */
    @Update("update role set data_scope=#{dataScope},update_time=#{updateTime} where role_id=#{roleId}")
    void updateDataScope(RoleDTO3 roleDTO3);

    /**
     * 查询角色表的某页某条数
     * @param num
     * @param num1
     * @return
     */
    @Select("select * from role limit #{num},#{num1}")
    List<Role> roleExport(int num, int num1);
}
